home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / linux / unaligned / memmove.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  829 b   |  46 lines

  1. #ifndef _LINUX_UNALIGNED_MEMMOVE_H
  2. #define _LINUX_UNALIGNED_MEMMOVE_H
  3.  
  4. #include <linux/kernel.h>
  5. #include <linux/string.h>
  6.  
  7. /* Use memmove here, so gcc does not insert a __builtin_memcpy. */
  8.  
  9. static inline u16 __get_unaligned_memmove16(const void *p)
  10. {
  11.     u16 tmp;
  12.     memmove(&tmp, p, 2);
  13.     return tmp;
  14. }
  15.  
  16. static inline u32 __get_unaligned_memmove32(const void *p)
  17. {
  18.     u32 tmp;
  19.     memmove(&tmp, p, 4);
  20.     return tmp;
  21. }
  22.  
  23. static inline u64 __get_unaligned_memmove64(const void *p)
  24. {
  25.     u64 tmp;
  26.     memmove(&tmp, p, 8);
  27.     return tmp;
  28. }
  29.  
  30. static inline void __put_unaligned_memmove16(u16 val, void *p)
  31. {
  32.     memmove(p, &val, 2);
  33. }
  34.  
  35. static inline void __put_unaligned_memmove32(u32 val, void *p)
  36. {
  37.     memmove(p, &val, 4);
  38. }
  39.  
  40. static inline void __put_unaligned_memmove64(u64 val, void *p)
  41. {
  42.     memmove(p, &val, 8);
  43. }
  44.  
  45. #endif /* _LINUX_UNALIGNED_MEMMOVE_H */
  46.